The present invention generally relates to microprocessor based media systems and, more particularly, to a system and method of improving the boot-up time of set-top boxes.
Set-top boxes are microprocessor-based controllers that control the operation of media systems. Known set-top boxes include cable converter boxes or satellite system converter boxes. Set-top boxes are used to control the conversion of the media signal transmitted from a content provider into the images and sounds that are provided by a corresponding media display device.
Set-top boxes generally include a processor, a non-volatile memory (i.e. EPROM, NVRAM, ROM, etc.) for storing program instructions that controls media signal conversion when the set-top box is off, and a main memory (i.e. SDRAM, DRAM, etc.) which provides fast processor access to the program instructions when the set-top box is on. In operation, viewing media system programming (e.g. cable television programs) requires that the set-top box be turned on. Upon being turned on, the set-top box xe2x80x9cboots upxe2x80x9d by first performing a series of internal self tests and then transferring the program instructions residing in the non-volatile memory to the main memory. Once the program instructions and any necessary data have been transferred to main memory, the processor then starts executing the program instructions.
A drawback associated with conventional set-top boxes is that the boot-up time is extremely slow. During boot-up, the program instructions are copied from the non-volatile memory to the main memory in a byte-by-byte fashion. The copy process includes performing the following steps in an iterative fashion per byte of memory: (1) writing a start memory address of the non-volatile memory to begin copying from; (2) transfering the byte of instructions stored in the memory location identified by that address; and (3) initiating a reset cycle in order to clear the data bus before the writing of a subsequent memory address and data transfer therefrom. This boot-up process generally takes 4-5 seconds to complete since non-volatile memory (e.g. ROM) is usually arranged in 8-bit data paths and the corresponding processor executes from a 32-bit RAM.
Another drawback associated with conventional boot-up of set-top boxes is that it requires a large amount of available main memory space. As discussed above, the transfer of media system control instructions is performed in a byte-by-byte fashion until completion. Since the processor executes 32-bit transfers, but the non-volatile memory only performs 8-bit transfers, 3 bytes of unused or invalid information are stored in main memory per transfer. This unused or invalid data quickly fills up and essentially wastes valuable main memory space; thereby, requiring a larger amount of memory to boot-up the media system.
The aforementioned and related drawbacks associated with conventional boot-up of set-top boxes are substantially reduced or eliminated by the present invention. The present invention is directed to a system and corresponding method that enhances media system performance by reducing set-top box boot-up time while requiring less memory space during initial data transfer. According to the present invention, set-top box boot-up begins with a direct memory access (DMA) block transfer of program instructions from a non-volatile memory to main memory. In a preferred embodiment of the present invention, the main memory is implemented as a 32-Mbyte synchronous dynamic random access memory (SDRAM) which provides for fast access. After the DMA transfer, the bytes of program instructions are then horizontally and vertically re-arranged within the main memory space.
More specifically, the method of efficiently booting up a set-top box according to the present invention comprises the steps of: block transferring instructions stored in the addressed location of non-volatile memory into main memory; and re-configuring the transferred instructions within the main memory. The re-configuring of the transferred instructions is performed directly within the main memory. Thus, the main memory arrangement is completed very quickly.
An advantage provided by the present invention is that it enhances set-top box efficiency by greatly reducing boot-up time.
Another advantage provided by the present invention is that it requires less memory to be used during boot-up.
A feature of the present invention is that it can be implemented in conjunction with any embedded system.